package com.shanzhu.volunteer.extra.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 院校表实体类
 */
@Data
@TableName("ce_collegex")
public class CeCollegex {

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 院校代码
     */
    @JsonProperty("collegeNo")
    @TableField(value = "college_no")
    private String collegeNo;

    /**
     * 院校名称
     */
    @JsonProperty("collegeName")
    @TableField(value = "college_name")
    private String collegeName;

    /**
     * 省份
     */
    @JsonProperty("province")
    @TableField(value = "province")
    private String province;

    /**
     * 城市
     */
    @JsonProperty("city")
    @TableField(value = "city")
    private String city;

    /**
     * 院校类型（综合、理工、师范等）
     */
    @JsonProperty("type")
    @TableField(value = "type")
    private String type;

    /**
     * 院校特色（985、211、双一流等，逗号分隔）
     */
    @JsonProperty("features")
    @TableField(value = "features")
    private String features;

    /**
     * 综合排名
     */
    @JsonProperty("ranking")
    @TableField(value = "ranking")
    private Integer ranking;

    /**
     * 招生人数
     */
    @JsonProperty("personCount")
    @TableField(value = "person_count")
    private Integer personCount;

    /**
     * 最低录取分数
     */
    @JsonProperty("minScore")
    @TableField(value = "min_score")
    private Integer minScore;

    /**
     * 最低录取位次
     */
    @JsonProperty("minRank")
    @TableField(value = "min_rank")
    private Integer minRank;

    /**
     * 选科要求（物理、化学+生物等）
     */
    @JsonProperty("subjectRequirements")
    @TableField(value = "subject_requirements")
    private String subjectRequirements;

    /**
     * 详细信息
     */
    @JsonProperty("detailInfo")
    @TableField(value = "detail_info")
    private String detailInfo;

    /**
     * 官网URL
     */
    @JsonProperty("website")
    @TableField(value = "website")
    private String website;

    /**
     * 校徽图片URL
     */
    @JsonProperty("logoUrl")
    @TableField(value = "logo_url")
    private String logoUrl;

    /**
     * 创建时间
     */
    @JsonProperty("createdTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "created_time")
    private LocalDateTime createdTime;

    /**
     * 创建人
     */
    @JsonProperty("createdUser")
    @TableField(value = "created_user")
    private String createdUser;

    /**
     * 修改时间
     */
    @JsonProperty("updatedTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "updated_time")
    private LocalDateTime updatedTime;

    /**
     * 修改人
     */
    @JsonProperty("updatedUser")
    @TableField(value = "updated_user")
    private String updatedUser;

    @TableField(exist = false)
    @JsonProperty("majors")
    private List<CeCollegeMajor> majors;

}